﻿namespace Reactor.Messaging.ServiceBus.Internals
{
    public abstract class TaskBase
    {
        /// <summary>
        /// Gets or sets the number of times this task has been attempted.
        /// </summary>
        /// <value>The number of execution attempts.</value>
        public int ExecutionAttempts { get; set; }

        /// <summary>
        /// Gets or sets the MessagingChannel.
        /// </summary>
        /// <value>The MessagingChannel.</value>
        public abstract IMessagingChannel MessagingChannel { get; set;}

        /// <summary>
        /// Validates this instance by checking that all information contained within is pertinant to this type of task.
        /// </summary>
        public abstract void Validate();
    }
}
 